#include <stdio.h>

typedef struct S1 {
    int size;
    char name;
    int price;
} S1_t;

// 初始化struct
void init(S1_t  *ps)
{
    ps->name = 'w';
    ps.name = 'a';
    ps->price = 20;
    ps->size = 22;
}

void print(struct S1 s){
    printf("name=%c price=%d size=%d \n",s.name,s.price,s.size);
}

// 这种方式更优，因为要传值只传4个字节即可。增加const，表示传入的内容不可更改。
// 而传值，需要传整个结构体。
void printEx(const struct S1* ps){
    printf("name=%c price=%d size=%d \n",ps->name,ps->price,ps->size);
}
int main()
{
    struct S1 s1 = {0};
    init(&s1); // 需要修改s1的值，传址
    print(s1); // 只是用到了s1，传值
    printEx(&s1); // 只是用到了s1，传值
    return 0;
} 